JavaScriptã¢ãžã¥ãŒã«ã®ä¿¡é Œæ§ãé«ããããã«ãã¢ãžã¥ãŒã«åŒã®è¡šçŸã«å¯ŸããŠã©ã³ã¿ã€ã åãã§ãã¯ã宿œããŸããã³ã³ãã€ã«æã®åæãè¶ ããå ç¢ãªåå®å šæ§ãå®è£ ããæ¹æ³ãåŠã³ãŸãããã
JavaScriptã¢ãžã¥ãŒã«åŒè¡šçŸã®åå®å šæ§ïŒã©ã³ã¿ã€ã ã¢ãžã¥ãŒã«åãã§ãã¯
æè»æ§ã§ç¥ãããJavaScriptã¯ãå³å¯ãªåãã§ãã¯ãäžè¶³ããã¡ã§ãæœåšçãªã©ã³ã¿ã€ã ãšã©ãŒã«ã€ãªããããšããããŸããTypeScriptãšFlowã¯éçåãã§ãã¯ãæäŸããŸãããç¹ã«åçã€ã³ããŒããã¢ãžã¥ãŒã«åŒè¡šçŸãæ±ãå Žåã«ã¯ããã¹ãŠã®ã·ããªãªãã«ããŒã§ãããšã¯éããŸããããã®èšäºã§ã¯ãã³ãŒãã®ä¿¡é Œæ§ãé«ããäºæããªãåäœãé²ãããã«ãJavaScriptã§ã¢ãžã¥ãŒã«åŒè¡šçŸã®ã©ã³ã¿ã€ã åãã§ãã¯ãå®è£ ããæ¹æ³ãæ¢ããŸããåçãªããŒã¿ãå€éšã®äŸåé¢ä¿ã«å¯ŸããŠããã¢ãžã¥ãŒã«ãæåŸ ã©ããã«åäœããããšãä¿èšŒããããã«äœ¿çšã§ããå®è·µçãªãã¯ããã¯ãšæŠç¥ãæãäžããŸãã
JavaScriptã¢ãžã¥ãŒã«ã«ãããåå®å šæ§ã®èª²é¡ãçè§£ãã
JavaScriptã®åçãªæ§è³ªã¯ãåå®å šæ§ã«ç¹æã®èª²é¡ããããããŸããéçåä»ãèšèªãšã¯ç°ãªããJavaScriptã¯ã©ã³ã¿ã€ã äžã«åãã§ãã¯ãå®è¡ããŸããããã«ããããããã€åŸã«ã®ã¿çºèŠããããšã©ãŒãçºçãããŠãŒã¶ãŒã«åœ±é¿ãäžããå¯èœæ§ããããŸããã¢ãžã¥ãŒã«åŒè¡šçŸãç¹ã«åçã€ã³ããŒããå«ããã®ã¯ããããªãè€éããå ããŸããå ·äœçãªèª²é¡ãèŠãŠã¿ãŸãããïŒ
- åçã€ã³ããŒãïŒ
import()æ§æã䜿çšãããšãã¢ãžã¥ãŒã«ãéåæçã«ããŒãã§ããŸãããã ããã€ã³ããŒããããã¢ãžã¥ãŒã«ã®åã¯ã³ã³ãã€ã«æã«äžæã§ãããããéçã«åå®å šæ§ã匷å¶ããããšã¯å°é£ã§ãã - å€éšã®äŸåé¢ä¿ïŒ ã¢ãžã¥ãŒã«ã¯ãåã®æ£ç¢ºãªå®çŸ©ããªãããŸãã¯æéã®çµéãšãšãã«å€åããå¯èœæ§ã®ããå€éšã©ã€ãã©ãªãŸãã¯APIã«äŸåããããšããããããŸãã
- ãŠãŒã¶ãŒå ¥åïŒ ãŠãŒã¶ãŒå ¥åãåŠçããã¢ãžã¥ãŒã«ã¯ãå ¥åãé©åã«æ€èšŒãããªãå Žåãåã«é¢é£ãããšã©ãŒã«å¯ŸããŠè匱ã§ãã
- è€éãªããŒã¿æ§é ïŒ JSONãªããžã§ã¯ããé åãªã©ã®è€éãªããŒã¿æ§é ãåŠçããã¢ãžã¥ãŒã«ã¯ãããŒã¿æŽåæ§ã確ä¿ããããã«æ³šææ·±ãåãã§ãã¯ãå¿ èŠã§ãã
ãŠãŒã¶ãŒã®å¥œã¿ã«åºã¥ããŠã¢ãžã¥ãŒã«ãåçã«ããŒãããWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããã·ããªãªãèããŠã¿ãŸããããã¢ãžã¥ãŒã«ã¯ãèšäºããããªãã€ã³ã¿ã©ã¯ãã£ãã²ãŒã ãªã©ãããŸããŸãªçš®é¡ã®ã³ã³ãã³ããã¬ã³ããªã³ã°ãã責任ãè² ãå ŽåããããŸããã©ã³ã¿ã€ã åãã§ãã¯ããªããšã誀ã£ãŠèšå®ãããã¢ãžã¥ãŒã«ãŸãã¯äºæããªãããŒã¿ã¯ã©ã³ã¿ã€ã ãšã©ãŒã«ã€ãªããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæãªãããå¯èœæ§ããããŸãã
ãªãã©ã³ã¿ã€ã åãã§ãã¯ãéèŠãªã®ã
ã©ã³ã¿ã€ã åãã§ãã¯ã¯ãåé¢é£ã®ãšã©ãŒã«å¯Ÿãã远å ã®é²åŸ¡å±€ãæäŸããããšã«ãããéçåãã§ãã¯ãè£å®ããŸãããããäžå¯æ¬ ãªçç±ã¯æ¬¡ã®ãšããã§ãïŒ
- éçåæãèŠèœãšããšã©ãŒãææïŒ TypeScriptãFlowãªã©ã®éçåæããŒã«ã¯ãç¹ã«åçã€ã³ããŒããå€éšã®äŸåé¢ä¿ããŸãã¯è€éãªããŒã¿æ§é ãå«ãå Žåããã¹ãŠã®æœåšçãªåãšã©ãŒãåžžã«ææã§ãããšã¯éããŸããã
- ã³ãŒãã®ä¿¡é Œæ§ãåäžïŒ ã©ã³ã¿ã€ã æã«ããŒã¿åãæ€èšŒããããšã«ãããäºæããªãåäœãé²ããã¢ãžã¥ãŒã«ãæ£ããæ©èœããããšã確èªã§ããŸãã
- ããè¯ããšã©ãŒåŠçãæäŸããïŒ ã©ã³ã¿ã€ã åãã§ãã¯ã«ãããåãšã©ãŒãé©åã«åŠçããéçºè ãšãŠãŒã¶ãŒã«æçãªãšã©ãŒã¡ãã»ãŒãžãæäŸã§ããŸãã
- é²åŸ¡çãªããã°ã©ãã³ã°ãä¿é²ïŒ ã©ã³ã¿ã€ã åãã§ãã¯ã¯ãããŒã¿åãæç€ºçã«æ€èšŒããæœåšçãªãšã©ãŒãç©æ¥µçã«åŠçãããé²åŸ¡çãªããã°ã©ãã³ã°ã¢ãããŒããæšå¥šããŸãã
- åçç°å¢ããµããŒãïŒ ã¢ãžã¥ãŒã«ãé »ç¹ã«ããŒãããã³ã¢ã³ããŒããããåçç°å¢ã§ã¯ãã³ãŒãã®æŽåæ§ãç¶æããããã«ã©ã³ã¿ã€ã åãã§ãã¯ãäžå¯æ¬ ã§ãã
ã©ã³ã¿ã€ã åãã§ãã¯ãå®è£ ããããã®ãã¯ããã¯
JavaScriptã¢ãžã¥ãŒã«ã§ã©ã³ã¿ã€ã åãã§ãã¯ãå®è£ ããã«ã¯ãããã€ãã®ãã¯ããã¯ã䜿çšã§ããŸããæã广çãªã¢ãããŒããããã€ãèŠãŠã¿ãŸãããïŒ
1. typeofæŒç®åãšinstanceofæŒç®åã®äœ¿çš
typeof æŒç®åãš instanceof æŒç®åã¯ãã©ã³ã¿ã€ã ã§å€æ°ã®åããã§ãã¯ã§ããJavaScriptã®çµã¿èŸŒã¿æ©èœã§ããtypeof æŒç®åã¯å€æ°ã®åã瀺ãæååãè¿ããinstanceof æŒç®åã¯ãªããžã§ã¯ããç¹å®ã®ã¯ã©ã¹ãŸãã¯ã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°ã®ã€ã³ã¹ã¿ã³ã¹ã§ãããã©ããããã§ãã¯ããŸãã
äŸïŒ
// å³åœ¢ã¿ã€ãã«åºã¥ããŠé¢ç©ãèšç®ããã¢ãžã¥ãŒã«
const geometryModule = {
calculateArea: (shape) => {
if (typeof shape === 'object' && shape !== null) {
if (shape.type === 'rectangle') {
if (typeof shape.width === 'number' && typeof shape.height === 'number') {
return shape.width * shape.height;
} else {
throw new Error('é·æ¹åœ¢ã«ã¯æ°å€ã®å¹
ãšé«ããå¿
èŠã§ãã');
}
} else if (shape.type === 'circle') {
if (typeof shape.radius === 'number') {
return Math.PI * shape.radius * shape.radius;
} else {
throw new Error('åã«ã¯æ°å€ã®ååŸãå¿
èŠã§ãã');
}
} else {
throw new Error('ãµããŒããããŠããªãå³åœ¢ã¿ã€ãã§ãã');
}
} else {
throw new Error('å³åœ¢ã¯ãªããžã§ã¯ãã§ããå¿
èŠããããŸãã');
}
}
};
// 䜿çšäŸ
try {
const rectangleArea = geometryModule.calculateArea({ type: 'rectangle', width: 5, height: 10 });
console.log('é·æ¹åœ¢ã®é¢ç©:', rectangleArea); // åºå: é·æ¹åœ¢ã®é¢ç©: 50
const circleArea = geometryModule.calculateArea({ type: 'circle', radius: 7 });
console.log('åã®é¢ç©:', circleArea); // åºå: åã®é¢ç©: 153.93804002589985
const invalidShapeArea = geometryModule.calculateArea({ type: 'triangle', base: 5, height: 8 }); // ãšã©ãŒãã¹ããŒ
} catch (error) {
console.error('ãšã©ãŒ:', error.message);
}
ãã®äŸã§ã¯ãcalculateArea 颿°ã¯ãshape åŒæ°ãšãã®ããããã£ã®åã typeof ã䜿çšããŠãã§ãã¯ããŸããåãæåŸ
ãããå€ãšäžèŽããªãå Žåããšã©ãŒãã¹ããŒãããŸããããã«ãããäºæããªãåäœãé²ãã颿°ãæ£ããåäœããããšãä¿èšŒãããŸãã
2. ã«ã¹ã¿ã åã¬ãŒãã®äœ¿çš
åã¬ãŒãã¯ãç¹å®ã®æ¡ä»¶ã«åºã¥ããŠå€æ°ã®åãçµã蟌ã颿°ã§ãããããã¯ãè€éãªããŒã¿æ§é ãŸãã¯ã«ã¹ã¿ã åãæ±ãå Žåã«ç¹ã«åœ¹ç«ã¡ãŸããç¬èªã®åã¬ãŒããå®çŸ©ããŠãããå ·äœçãªåãã§ãã¯ãå®è¡ã§ããŸãã
äŸïŒ
// ãŠãŒã¶ãŒãªããžã§ã¯ãã®åãå®çŸ©
/**
* @typedef {object} User
* @property {string} id - ãŠãŒã¶ãŒã®äžæã®èå¥åã
* @property {string} name - ãŠãŒã¶ãŒã®ååã
* @property {string} email - ãŠãŒã¶ãŒã®ã¡ãŒã«ã¢ãã¬ã¹ã
* @property {number} age - ãŠãŒã¶ãŒã®å¹Žéœ¢ããªãã·ã§ã³ã§ãã
*/
/**
* ãªããžã§ã¯ããUserã§ãããã©ããããã§ãã¯ããåã¬ãŒã
* @param {any} obj - ãã§ãã¯ãããªããžã§ã¯ãã
* @returns {boolean} - ãªããžã§ã¯ããUserã®å Žåã¯trueããã以å€ã®å Žåã¯falseã
*/
function isUser(obj) {
return (
typeof obj === 'object' &&
obj !== null &&
typeof obj.id === 'string' &&
typeof obj.name === 'string' &&
typeof obj.email === 'string'
);
}
// ãŠãŒã¶ãŒããŒã¿ãåŠçãã颿°
function processUserData(user) {
if (isUser(user)) {
console.log(`ãŠãŒã¶ãŒãåŠçäžïŒ${user.name} (${user.email})`);
// ãŠãŒã¶ãŒãªããžã§ã¯ãã§ãããªãæäœãå®è¡
} else {
console.error('ç¡å¹ãªãŠãŒã¶ãŒããŒã¿ïŒ', user);
throw new Error('ç¡å¹ãªãŠãŒã¶ãŒããŒã¿ãæäŸãããŸããã');
}
}
// 䜿çšäŸïŒ
const validUser = { id: '123', name: 'John Doe', email: 'john.doe@example.com' };
const invalidUser = { name: 'Jane Doe', email: 'jane.doe@example.com' }; // 'id' ããããŸãã
try {
processUserData(validUser);
} catch (error) {
console.error(error.message);
}
try {
processUserData(invalidUser); // 'id' ãã£ãŒã«ãããªãããããšã©ãŒãã¹ããŒ
} catch (error) {
console.error(error.message);
}
ãã®äŸã§ã¯ãisUser 颿°ãåã¬ãŒããšããŠæ©èœããŸãããªããžã§ã¯ãããUser ãªããžã§ã¯ããšèŠãªãããããã«å¿
èŠãªããããã£ãšåãæã£ãŠãããã©ããããã§ãã¯ããŸããprocessUserData 颿°ã¯ããã®åã¬ãŒãã䜿çšããŠãåŠçããåã«ãã®å
¥åãæ€èšŒããŸããããã«ããã颿°ãæå¹ãª User ãªããžã§ã¯ãã®ã¿ã§åäœããæœåšçãªãšã©ãŒã鲿¢ããŸãã
3. æ€èšŒã©ã€ãã©ãªã®äœ¿çš
ããã€ãã®JavaScriptæ€èšŒã©ã€ãã©ãªã¯ãã©ã³ã¿ã€ã åãã§ãã¯ã®ããã»ã¹ãç°¡çŽ åã§ããŸãããããã®ã©ã€ãã©ãªã¯ãæ€èšŒã¹ããŒããå®çŸ©ããããŒã¿ããããã®ã¹ããŒãã«æºæ ããŠãããã©ããããã§ãã¯ããããã®äŸ¿å©ãªæ¹æ³ãæäŸããŸããäžè¬çãªæ€èšŒã©ã€ãã©ãªã«ã¯ã次ã®ãã®ããããŸãïŒ
- JoiïŒ JavaScriptçšã®åŒ·åãªã¹ããŒãèšè¿°èšèªããã³ããŒã¿ããªããŒã¿ãŒã
- YupïŒ ã©ã³ã¿ã€ã å€ã®è§£æãšæ€èšŒã®ããã®ã¹ããŒããã«ããŒã
- AjvïŒ éåžžã«é«éãªJSONã¹ããŒãããªããŒã¿ãŒã
Joiã䜿çšããäŸïŒ
const Joi = require('joi');
// 補åãªããžã§ã¯ãã®ã¹ããŒããå®çŸ©
const productSchema = Joi.object({
id: Joi.string().uuid().required(),
name: Joi.string().min(3).max(50).required(),
price: Joi.number().positive().precision(2).required(),
description: Joi.string().allow(''),
imageUrl: Joi.string().uri(),
category: Joi.string().valid('electronics', 'clothing', 'books').required(),
// æ°éãšisAvailableãã£ãŒã«ãã远å
quantity: Joi.number().integer().min(0).default(0),
isAvailable: Joi.boolean().default(true)
});
// 補åãªããžã§ã¯ããæ€èšŒãã颿°
function validateProduct(product) {
const { error, value } = productSchema.validate(product);
if (error) {
throw new Error(error.details.map(x => x.message).join('\n'));
}
return value; // æ€èšŒæžã¿ã®è£œåãè¿ã
}
// 䜿çšäŸïŒ
const validProduct = {
id: 'a1b2c3d4-e5f6-7890-1234-567890abcdef',
name: 'çŽ æŽããã補å',
price: 99.99,
description: 'ããã¯çŽ æŽããã補åã§ãïŒ',
imageUrl: 'https://example.com/product.jpg',
category: 'electronics',
quantity: 10,
isAvailable: true
};
const invalidProduct = {
id: 'invalid-uuid',
name: 'AB',
price: -10,
category: 'invalid-category'
};
// æå¹ãªè£œåãæ€èšŒãã
try {
const validatedProduct = validateProduct(validProduct);
console.log('æ€èšŒæžã¿ã®è£œåïŒ', validatedProduct);
} catch (error) {
console.error('æ€èšŒãšã©ãŒïŒ', error.message);
}
// ç¡å¹ãªè£œåãæ€èšŒãã
try {
const validatedProduct = validateProduct(invalidProduct);
console.log('æ€èšŒæžã¿ã®è£œåïŒ', validatedProduct);
} catch (error) {
console.error('æ€èšŒãšã©ãŒïŒ', error.message);
}
ãã®äŸã§ã¯ãJoiã䜿çšã㊠product ãªããžã§ã¯ãã®ã¹ããŒããå®çŸ©ããŸããvalidateProduct 颿°ã¯ããã®ã¹ããŒãã䜿çšããŠå
¥åãæ€èšŒããŸããå
¥åãã¹ããŒãã«æºæ ããŠããªãå Žåããšã©ãŒãã¹ããŒãããŸããããã«ãããåå®å
šæ§ãšããŒã¿æŽåæ§ã匷å¶ããããã®æç¢ºãã€ç°¡æœãªæ¹æ³ãæäŸãããŸãã
4. ã©ã³ã¿ã€ã åãã§ãã¯ã©ã€ãã©ãªã®äœ¿çš
JavaScriptã§ã®ã©ã³ã¿ã€ã åãã§ãã¯çšã«ç¹å¥ã«èšèšãããã©ã€ãã©ãªãããã€ããããŸãããããã®ã©ã€ãã©ãªã¯ãåæ€èšŒã«å¯Ÿããããæ§é åãããå æ¬çãªã¢ãããŒããæäŸããŸãã
- ts-interface-checkerïŒ TypeScriptã€ã³ã¿ãŒãã§ãŒã¹ããã©ã³ã¿ã€ã ããªããŒã¿ãŒãçæããŸãã
- io-tsïŒ ã©ã³ã¿ã€ã åããªããŒã¿ãŒãå®çŸ©ããããã®ãæ§æå¯èœã§åå®å šãªæ¹æ³ãæäŸããŸãã
ts-interface-checkerã䜿çšããäŸïŒäŸç€ºç-TypeScriptã«ããèšå®ãå¿ èŠã§ãïŒïŒ
// product.tsã§å®çŸ©ãããTypeScriptã€ã³ã¿ãŒãã§ãŒã¹ããããšä»®å®ããŸãïŒ
// export interface Product {
// id: string;
// name: string;
// price: number;
// }
// ts-interface-builderã䜿çšããŠã©ã³ã¿ã€ã ãã§ãã«ãŒãçæãããšããŸãïŒ
// import { createCheckers } from 'ts-interface-checker';
// import { Product } from './product';
// const { Product: checkProduct } = createCheckers(Product);
// çæããããã§ãã«ãŒãã·ãã¥ã¬ãŒãïŒãã®çŽç²ãªJavaScriptã®äŸã§ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ç®çïŒ
const checkProduct = (obj) => {
if (typeof obj !== 'object' || obj === null) return false;
if (typeof obj.id !== 'string') return false;
if (typeof obj.name !== 'string') return false;
if (typeof obj.price !== 'number') return false;
return true;
};
function processProduct(product) {
if (checkProduct(product)) {
console.log('æå¹ãªè£œåãåŠçäžïŒ', product);
} else {
console.error('ç¡å¹ãªè£œåããŒã¿ïŒ', product);
}
}
const validProduct = { id: '123', name: 'Laptop', price: 999 };
const invalidProduct = { name: 'Laptop', price: '999' };
processProduct(validProduct);
processProduct(invalidProduct);
æ³šïŒ ts-interface-checker ã®äŸã¯ãåçã瀺ããŠããŸããéåžžãTypeScriptã€ã³ã¿ãŒãã§ãŒã¹ãã checkProduct 颿°ãçæããã«ã¯ãTypeScriptã®èšå®ãå¿
èŠã§ããçŽç²ãªJavaScriptããŒãžã§ã³ã¯ãåçŽåãããäŸã§ãã
ã©ã³ã¿ã€ã ã¢ãžã¥ãŒã«åãã§ãã¯ã®ãã¹ããã©ã¯ãã£ã¹
JavaScriptã¢ãžã¥ãŒã«ã§ã©ã³ã¿ã€ã åãã§ãã¯ã广çã«å®è£ ããã«ã¯ã次ã®ãã¹ããã©ã¯ãã£ã¹ãæ€èšããŠãã ããïŒ
- æç¢ºãªåã³ã³ãã©ã¯ããå®çŸ©ããïŒ ã¢ãžã¥ãŒã«ã®å ¥åãšåºåã®æåŸ ãããåãæç¢ºã«å®çŸ©ããŸããããã«ãããã¢ãžã¥ãŒã«éã®æç¢ºãªã³ã³ãã©ã¯ãã確ç«ããåãšã©ãŒãç°¡åã«ç¹å®ã§ããŸãã
- ã¢ãžã¥ãŒã«å¢çã§ããŒã¿ãæ€èšŒããïŒ ããŒã¿ãåºå ¥ãããã¢ãžã¥ãŒã«ã®å¢çã§åæ€èšŒãå®è¡ããŸããããã«ãããåãšã©ãŒãåé¢ããã¢ããªã±ãŒã·ã§ã³å šäœã«äŒæããã®ãé²ãããšãã§ããŸãã
- ãããããããšã©ãŒã¡ãã»ãŒãžã䜿çšããïŒ ãšã©ãŒã®çš®é¡ãšãã®å Žæãæç¢ºã«ç€ºããæ å ±éã®å€ããšã©ãŒã¡ãã»ãŒãžãæäŸããŸããããã«ãããéçºè ãåé¢é£ã®åé¡ããããã°ããŠä¿®æ£ããããšã容æã«ãªããŸãã
- ããã©ãŒãã³ã¹ãžã®åœ±é¿ãèæ ®ããïŒ ã©ã³ã¿ã€ã åãã§ãã¯ã¯ãã¢ããªã±ãŒã·ã§ã³ã«ãªãŒããŒãããã远å ããå¯èœæ§ããããŸããããã©ãŒãã³ã¹ãžã®åœ±é¿ãæå°éã«æããããã«ãåãã§ãã¯ããžãã¯ãæé©åããŸããããšãã°ããã£ãã·ã¥ãé å»¶è©äŸ¡ã䜿çšããŠãåé·ãªåãã§ãã¯ãåé¿ã§ããŸãã
- ãã®ã³ã°ãšç£èŠãçµ±åããïŒ ã©ã³ã¿ã€ã åãã§ãã¯ããžãã¯ãããã®ã³ã°ã·ã¹ãã ãšç£èŠã·ã¹ãã ã«çµ±åããŸããããã«ãããæ¬çªç°å¢ã§åãšã©ãŒã远跡ãããŠãŒã¶ãŒã«åœ±é¿ãäžããåã«æœåšçãªåé¡ãç¹å®ã§ããŸãã
- éçåãã§ãã¯ãšçµã¿åãããïŒ ã©ã³ã¿ã€ã åãã§ãã¯ã¯ãéçåãã§ãã¯ãè£å®ããŸããJavaScriptã¢ãžã¥ãŒã«ã§å æ¬çãªåå®å šæ§ãå®çŸããã«ã¯ãäž¡æ¹ã®ææ³ã䜿çšããŸããTypeScriptãšFlowã¯ãéçåãã§ãã¯ã«æé©ãªéžæè¢ã§ãã
ããŸããŸãªã°ããŒãã«ã³ã³ããã¹ãã®äŸ
ããŸããŸãªã°ããŒãã«ã³ã³ããã¹ãã§ã©ã³ã¿ã€ã åãã§ãã¯ãã©ã®ããã«åœ¹ç«ã€ãã瀺ããŸãããïŒ
- Eã³ããŒã¹ãã©ãããã©ãŒã ïŒã°ããŒãã«ïŒïŒ äžçäžã§è£œåã販売ããeã³ããŒã¹ãã©ãããã©ãŒã ã¯ãããŸããŸãªé貚圢åŒãæ¥ä»åœ¢åŒãããã³äœæåœ¢åŒãåŠçããå¿ èŠããããŸããã©ã³ã¿ã€ã åãã§ãã¯ã䜿çšããŠããŠãŒã¶ãŒå ¥åãæ€èšŒãããŠãŒã¶ãŒã®å Žæã«é¢ä¿ãªãããŒã¿ãæ£ããåŠçãããããã«ããããšãã§ããŸããããšãã°ãéµäŸ¿çªå·ãç¹å®ã®åœã®æåŸ ããã圢åŒãšäžèŽããããšã確èªããŸãã
- éèã¢ããªã±ãŒã·ã§ã³ïŒå€åœç±ïŒïŒ è€æ°ã®é貚ã§ååŒãåŠçããéèã¢ããªã±ãŒã·ã§ã³ã¯ãæ£ç¢ºãªé貚æç®ãå®è¡ããããŸããŸãªçšå¶ãåŠçããå¿ èŠããããŸããã©ã³ã¿ã€ã åãã§ãã¯ã䜿çšããŠãé貚ã³ãŒããçºæ¿ã¬ãŒããããã³çšé¡ãæ€èšŒããŠãéèãšã©ãŒãé²ãããšãã§ããŸããããšãã°ãé貚ã³ãŒããæå¹ãªISO 4217é貚ã³ãŒãã§ããããšã確èªããŸãã
- å»çã·ã¹ãã ïŒåœéïŒïŒ ããŸããŸãªåœããã®æ£è ããŒã¿ã管çããå»çã·ã¹ãã ã¯ãããŸããŸãªå»çèšé²åœ¢åŒãèšèªèšå®ãããã³ãã©ã€ãã·ãŒèŠå¶ãåŠçããå¿ èŠããããŸããã©ã³ã¿ã€ã åãã§ãã¯ã䜿çšããŠãæ£è èå¥åãå»çã³ãŒããããã³åææžãæ€èšŒããŠãããŒã¿æŽåæ§ãšã³ã³ãã©ã€ã¢ã³ã¹ã確ä¿ã§ããŸããããšãã°ãæ£è ã®çå¹Žææ¥ãé©åãªåœ¢åŒã§æå¹ãªæ¥ä»ã§ããããšã確èªããŸãã
- æè²ãã©ãããã©ãŒã ïŒã°ããŒãã«ïŒïŒ è€æ°ã®èšèªã§ã³ãŒã¹ãæäŸããæè²ãã©ãããã©ãŒã ã¯ãããŸããŸãªæåã»ãããæ¥ä»åœ¢åŒãããã³ã¿ã€ã ãŸãŒã³ãåŠçããå¿ èŠããããŸããã©ã³ã¿ã€ã åãã§ãã¯ã䜿çšããŠããŠãŒã¶ãŒå ¥åãã³ãŒã¹ã³ã³ãã³ããããã³è©äŸ¡ããŒã¿ãæ€èšŒããŠããã©ãããã©ãŒã ããŠãŒã¶ãŒã®å Žæãèšèªã«é¢ä¿ãªãæ£ããæ©èœããããã«ããããšãã§ããŸããããšãã°ãåŠçã®ååã«ãéžæããèšèªã®æå¹ãªæåã®ã¿ãå«ãŸããŠããããšã確èªããŸãã
çµè«
ã©ã³ã¿ã€ã åãã§ãã¯ã¯ãç¹ã«åçã€ã³ããŒããã¢ãžã¥ãŒã«åŒè¡šçŸãæ±ãå Žåã«ãJavaScriptã¢ãžã¥ãŒã«ã®ä¿¡é Œæ§ãšå ç¢æ§ãé«ããããã®è²Žéãªãã¯ããã¯ã§ããã©ã³ã¿ã€ã æã«ããŒã¿åãæ€èšŒããããšã«ãããäºæããªãåäœãé²ãããšã©ãŒåŠçãæ¹åããé²åŸ¡çãªããã°ã©ãã³ã°ãä¿é²ã§ããŸããTypeScriptãFlowãªã©ã®éçåãã§ãã¯ããŒã«ã¯äžå¯æ¬ ã§ãããã©ã³ã¿ã€ã åãã§ãã¯ã¯ãéçåæã§ã¯èŠéãããå¯èœæ§ã®ããåé¢é£ã®ãšã©ãŒã«å¯Ÿãã远å ã®ä¿è·å±€ãæäŸããŸããéçåãã§ãã¯ãšã©ã³ã¿ã€ã åãã§ãã¯ãçµã¿åãããããšã§ãå æ¬çãªåå®å šæ§ãå®çŸããããä¿¡é Œæ§ã®é«ããä¿å®æ§ã®é«ãJavaScriptã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã
JavaScriptã¢ãžã¥ãŒã«ãéçºããéã«ã¯ãããŸããŸãªç°å¢ãããŸããŸãªæ¡ä»¶äžã§ã¢ãžã¥ãŒã«ãæ£ããæ©èœããããã«ãã©ã³ã¿ã€ã åãã§ãã¯ææ³ãçµã¿èŸŒãããšãæ€èšããŠãã ããããã®ç©æ¥µçãªã¢ãããŒãã¯ãäžçäžã®ãŠãŒã¶ãŒã®ããŒãºãæºãããããå ç¢ã§ä¿¡é Œæ§ã®é«ããœãããŠã§ã¢ãæ§ç¯ããã®ã«åœ¹ç«ã¡ãŸãã